<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>systemd.kill
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>systemd.kill 中文手册</h1><h2 id="auth_name">译者：<strong><a href="../index.html">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="../index.html">金步国作品集</a> [ <a href="../index.html">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="systemd.kill"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>systemd.kill — 配置
    如何杀死进程</p></div><div class="refsynopsisdiv"><h2>大纲</h2><p><code class="filename"><em class="replaceable"><code>service</code></em>.service</code>,
    <code class="filename"><em class="replaceable"><code>socket</code></em>.socket</code>,
    <code class="filename"><em class="replaceable"><code>mount</code></em>.mount</code>,
    <code class="filename"><em class="replaceable"><code>swap</code></em>.swap</code>,
    <code class="filename"><em class="replaceable"><code>scope</code></em>.scope</code></p></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="systemd.kill.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p>service, socket,
     mount, swap, scope
    单元都拥有一组如何杀死进程的
    配置选项(亦称"配置指令"或"单元属性")。</p><p>本手册页列出并解释了上述五种类型的单元所共有的配置选项。
    参见
    <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>
    以了解所有类型的单元所共有的配置选项，而
    <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
    <a href="systemd.socket.html#"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>,
    <a href="systemd.swap.html#"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a>,
    <a href="systemd.mount.html#"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>,

    <a href="systemd.scope.html#"><span class="citerefentry"><span class="refentrytitle">systemd.scope</span>(5)</span></a>
    则分别说明了
    各单元所独有的配置选项。</p><p>根据单元类型的不同，本手册页列出的共有选项(亦称"指令"或"属性")分别位于单元文件的
     [Service], [Socket], [Mount], [Swap] 
    小节。</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="选项">选项<a class="headerlink" title="Permalink to this headline" href="systemd.kill.html#%E9%80%89%E9%A1%B9">¶</a></h2><div class="variablelist"><dl class="variablelist"><dt id="KillMode="><span class="term"><code class="varname">KillMode=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.kill.html#KillMode=">¶</a></dt><dd><p>设置在单元停止时，杀死进程的方法。
        取值范围如下：
        <code class="option">control-group</code>,
        <code class="option">process</code>,
        <code class="option">mixed</code>,
        <code class="option">none</code></p><p><code class="option">control-group</code>
        表示杀死该单元的 cgroup 内的所有进程(对于
        service 单元，还要先执行
         <code class="varname">ExecStop=</code> 动作)。
        <code class="option">process</code> 表示仅杀死主进程。
        <code class="option">mixed</code> 表示首先向主进程发送
        <code class="constant">SIGTERM</code> 信号(见下文)，
        然后再向该单元的 cgroup 内的所有其他进程发送
        <code class="constant">SIGKILL</code> 信号(见下文)。
        <code class="option">none</code> 表示仅执行 <code class="varname">ExecStop=</code> 动作，
        而不杀死任何进程。
        这会导致即使单元已经停止，
        但是该单元的 cgroup 依然一直存在，
        直到其中的进程
        全部死亡。</p><p>杀死进程的时候，
        第一步首先使用
        <code class="varname">KillSignal=</code> 信号(默认为 <code class="constant">SIGTERM</code>)
        (如果 <code class="varname">SendSIGHUP=yes</code> ，那么还会立即紧跟一个 <code class="constant">SIGHUP</code> 信号)，
        若等候
        <code class="varname">TimeoutStopSec=</code> 时间后，
        进程仍然未被杀死，
        则继续第二步使用 <code class="constant">SIGKILL</code> 或
         <code class="varname">FinalKillSignal=</code> 信号(除非
         <code class="varname">SendSIGKILL=no</code>)强制杀死。
        详见
        <a href="http://man7.org/linux/man-pages/man2/kill.2.html"><span class="citerefentry"><span class="refentrytitle">kill</span>(2)</span></a>
        手册。</p><p>默认值是
        <code class="option">control-group</code></p></dd><dt id="KillSignal="><span class="term"><code class="varname">KillSignal=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.kill.html#KillSignal=">¶</a></dt><dd><p>设置
        杀死进程的第一步
        使用什么信号(见上文)。
        所有可用的信号详见
        <a href="http://man7.org/linux/man-pages/man7/signal.7.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a> 手册。
        默认值为
         <code class="constant">SIGTERM</code> 信号。 </p><p>注意，
        systemd 会无条件的紧跟此信号之后再发送一个
        <code class="constant">SIGCONT</code> 信号，
        以确保干净的杀死已挂起(suspended)的进程。</p></dd><dt id="SendSIGHUP="><span class="term"><code class="varname">SendSIGHUP=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.kill.html#SendSIGHUP=">¶</a></dt><dd><p>是否在第一步发送
         <code class="varname">KillSignal=</code> 信号后，
        立即紧跟着向该单元的所有进程再发送一个 <code class="constant">SIGHUP</code> 信号。
        这主要用于通知 shell 之类的进程，
        它们的连接已中断。
        默认为"no"
        </p></dd><dt id="SendSIGKILL="><span class="term"><code class="varname">SendSIGKILL=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.kill.html#SendSIGKILL=">¶</a></dt><dd><p>是否在超过
         <code class="varname">TimeoutStopSec=</code> 时间后，
        使用 <code class="constant">SIGKILL</code> 或
         <code class="varname">FinalKillSignal=</code>
        信号杀死依然残存的进程。
        默认值为"yes"
        </p></dd><dt id="FinalKillSignal="><span class="term"><code class="varname">FinalKillSignal=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.kill.html#FinalKillSignal=">¶</a></dt><dd><p>当发生了超时并且已开启
         <code class="varname">SendSIGKILL=</code> 时，
        发送哪个信号给剩余的进程。
        应当设置为不能被服务捕获和处理的信号(<code class="constant">SIGTERM</code>
        就不合适)。对于开发人员来说，
        可以使用它来生成 coredump 以了解
        为什么服务在接收到最初的 <code class="constant">SIGTERM</code>
        信号时没有正确终止。具体做法是 设置 <code class="varname">LimitCORE=</code>
        并且将 <code class="varname">FinalKillSignal=</code> 设为
        <code class="constant">SIGQUIT</code> 或 <code class="constant">SIGABRT</code> 之一。
        此选项的默认值为 <code class="constant">SIGKILL</code>
        </p></dd><dt id="WatchdogSignal="><span class="term"><code class="varname">WatchdogSignal=</code></span><a class="headerlink" title="Permalink to this term" href="systemd.kill.html#WatchdogSignal=">¶</a></dt><dd><p>在看门狗(<code class="varname">WatchdogSec=</code>)发生超时的情况下，
        使用哪个信号终止服务。
        此选项的默认值为 <code class="constant">SIGABRT</code>
        </p></dd></dl></div></div><div class="refsect1"><a name="id-1.7"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="systemd.kill.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
        <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
        <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
        <a href="journalctl.html#"><span class="citerefentry"><span class="refentrytitle">journalctl</span>(1)</span></a>,
        <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
        <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
        <a href="systemd.socket.html#"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>,
        <a href="systemd.swap.html#"><span class="citerefentry"><span class="refentrytitle">systemd.swap</span>(5)</span></a>,
        <a href="systemd.mount.html#"><span class="citerefentry"><span class="refentrytitle">systemd.mount</span>(5)</span></a>,
        <a href="systemd.exec.html#"><span class="citerefentry"><span class="refentrytitle">systemd.exec</span>(5)</span></a>,
        <a href="systemd.directives.html#"><span class="citerefentry"><span class="refentrytitle">systemd.directives</span>(7)</span></a>,
        <a href="http://man7.org/linux/man-pages/man2/kill.2.html"><span class="citerefentry"><span class="refentrytitle">kill</span>(2)</span></a>,
        <a href="http://man7.org/linux/man-pages/man7/signal.7.html"><span class="citerefentry"><span class="refentrytitle">signal</span>(7)</span></a>
      </p></div></div></body></html>
